/*
* 公共配置 ，在其它配置文件使用 webpack-merge 合并下面的配置
* */

const path = require('path')
const webpack = require('webpack')

//console.log( window.__webpack_public_path__ ); // 多环境路径配置，没搞清楚怎么使用。。。


// 引入多页面配置文件
const page = require('./page.js')


// 入口文件
let entryOption = { }

let pluginsOption = [
    // 每个页面都要引入 jquery 可以设置全局变量
    // new webpack.ProvidePlugin({
    //     $: "jquery",
    //     //_: "underscore"
    // })
]

// 导入页面
for (var key of page) {
    entryOption[key.path[0]] = key.path[1]
    pluginsOption.push( key.html )
}

module.exports = {
    entry: entryOption,
    output: {},
    module: {
        rules: [
            {
                test: /\.js$/,
                use: 'babel-loader',
                include: /src/,          // 只转化src目录下的js
                exclude: /node_modules/  // 排除掉node_modules，优化打包速度
            },
            {
                test: /\.(htm|html)$/,
                use: 'html-withimg-loader?exclude=/assets/'
            },
            // {
            //     test: /index\.(htm|html)$/, // 单独处理 index.html
            //     loader: 'html-withimg-loader',
            //     options: {
            //         publicPath: './'
            //     }
            // },
            {
                test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
                // use: [{loader: 'url-loader'}],
                loader: 'url-loader',
                options: {
                    limit: 8*1024,
                    name: './img/[name].[hash:7].[ext]',
                    publicPath: '../'
                }
            },
            {
                test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)$/,
                loader: 'url-loader',
                options: {
                    limit: 8*1024,
                    name: 'media/[name].[hash:7].[ext]',
                    publicPath: '/dist'
                }
            },
            {
                test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
                loader: 'url-loader',
                options: {
                    limit: 8*1024,
                    name: 'fonts/[name].[hash:7].[ext]',
                    publicPath: '/dist'
                }
            }
        ]
    },
    // 对应的插件
    plugins: pluginsOption,
}